package com.irdstudio.basic.sequence.service;

import java.io.Serializable;

/**
 * 用于描述一个Sequence除业务以外的具体信息
 * by: hengyh
 */
public interface PatternDescriptor extends Serializable {

    String DEFAULT_SEQ_NAME = "SEQ";
    String DEFAULT_SPLIT = "$";
    String NO_PATTERN = null;

    /**
     * 获取已替换pattern字符串中占位符的处理后字符串
     * @return
     */
    String getResolvedPatternString();

    /**
     * 获取原pattern字符串
     * @return
     */
    String getOriginPatternString();

    /**
     * 获取占位符的分割号
     * @return
     */
    String getSplit();

    /**
     * 获取序列的最大值
     * @return
     */
    Long getSeqMaxValue();

    /**
     * 获取SEQ在pattern中的名称
     * @return
     */
    String getSeqName();

    /**
     * 获取序列的最大长度
     * @return
     */
    Integer getSeqLength();
}
